
clc;clear;close all;

warning off
%% ����
model = CreateModel1(); % ����������ͼ�Ͳ���

fobj=@(x)CostFunction(x,model);
[LB,UB,Dim]=Info(model); % ����Լ����Ϣ
%%  �����Ż��㷨
MaxIt=500;          % ��������
nPop=50;           % ��Ⱥ��
% �����Ż��㷨�����滻�������㷨
id=1;
% for i=1:2
t1=tic;
results.alg_name{id}='DMOA';
[results.Bestcost(id),results.bestX(id,:),results.cost_history(id,:)]=DMOA(nPop,MaxIt,LB,UB,Dim,fobj);
F11=one(results.bestX(id,:),model);
F21=two(results.bestX(id,:),model);
F31=three(results.bestX(id,:),model);
F41=four(results.bestX(id,:),model);
cost1=CostFunction(results.bestX(id,:),model);
toc(t1);

% t2=tic;
% id=id+1;
% results.alg_name{id}='GWO';
% [results.Bestcost(id),results.bestX(id,:),results.cost_history(id,:)]=GWO(nPop,MaxIt,LB,UB,Dim,fobj);
% F12=one(results.bestX(id,:),model);
% F22=two(results.bestX(id,:),model);
% F32=three(results.bestX(id,:),model);
% F42=four(results.bestX(id,:),model);
% cost2=CostFunction(results.bestX(id,:),model);
% toc(t2);

t3=tic;
id=id+1;
results.alg_name{id}='CDMOS';
[results.Bestcost(id),results.bestX(id,:),results.cost_history(id,:)]=CDMOS(nPop,MaxIt,LB,UB,Dim,fobj);
F13=one(results.bestX(id,:),model);
F23=two(results.bestX(id,:),model);
F33=three(results.bestX(id,:),model);
F43=four(results.bestX(id,:),model);
cost3=CostFunction(results.bestX(id,:),model);
toc(t3);

t4=tic;
id=id+1;
results.alg_name{id}='IDMO';
[results.Bestcost(id),results.bestX(id,:),results.cost_history(id,:)]=IDMO(nPop,MaxIt,LB,UB,Dim,fobj);
F14=one(results.bestX(id,:),model);
F24=two(results.bestX(id,:),model);
F34=three(results.bestX(id,:),model);
F44=four(results.bestX(id,:),model);
cost4=CostFunction(results.bestX(id,:),model);
toc(t4);
% end


% cost1=CostFunction(results.bestX(id,:),model);
% position = Transforms(results.bestX,model);
% F1=one(results.bestX(id,:),model);
% F2=two(results.bestX(id,:),model);
% F3=three(results.bestX(id,:),model);
% F4=four(results.bestX(id,:),model);
%% ���ƽ��
DrawSolution(results,model);

disp(['������Ӧ��ֵΪ��',num2str(results.Bestcost)]);
disp(['·�����ȴ���Ϊ��',num2str(F11)]);
disp(['�ϰ��ɱ�Ϊ��',num2str(F21)]);
disp(['�߶ȳɱ�Ϊ��',num2str(F31)]);
disp(['Smooth�ɱ�Ϊ��',num2str(F41)]);
disp(['�ܳɱ�Ϊ��',num2str(cost1)]);
% disp(['·�����ȴ���Ϊ��',num2str(F12)]);
% disp(['�ϰ��ɱ�Ϊ��',num2str(F22)]);
% disp(['�߶ȳɱ�Ϊ��',num2str(F32)]);
% disp(['Smooth�ɱ�Ϊ��',num2str(F42)]);
% disp(['�ܳɱ�Ϊ��',num2str(cost2)]);
disp(['·�����ȴ���Ϊ��',num2str(F13)]);
disp(['�ϰ��ɱ�Ϊ��',num2str(F23)]);
disp(['�߶ȳɱ�Ϊ��',num2str(F33)]);
disp(['Smooth�ɱ�Ϊ��',num2str(F43)]);
disp(['�ܳɱ�Ϊ��',num2str(cost3)]);
disp(['·�����ȴ���Ϊ��',num2str(F14)]);
disp(['�ϰ��ɱ�Ϊ��',num2str(F24)]);
disp(['�߶ȳɱ�Ϊ��',num2str(F34)]);
disp(['Smooth�ɱ�Ϊ��',num2str(F44)]);
disp(['�ܳɱ�Ϊ��',num2str(cost4)]);


% % % % % % clc
% % % % % % clear all
% % % % % % close all
% % % % % % warning off
% % % % % % map_select = 2; % ����map ��ѡ1��2
% % % % % % map_complexity = 2 ; % �������Ӷ� ��ѡ1��2
% % % % % % flight_num = 30; % ��չ������
% % % % % % startPos = [200;100;150];
% % % % % % goalPos = [800;800;150];
% % % % % % 
% % % % % % model = Create_Select_Model(map_select,map_complexity,startPos,goalPos,flight_num); 
% % % % % % fobj=@(x)CostFunction(x,model);
% % % % % % [LB,UB,Dim]=Info(model); % ����Լ����Ϣ
% % % % % % %%  �����Ż��㷨
% % % % % % MaxIt=500;          % ��������
% % % % % % nPop=50;           % ��Ⱥ��
% % % % % % % �����Ż��㷨�����滻�������㷨
% % % % % % id=1;
% % % % % % % for i=1:2
% % % % % % results.alg_name{id}='DMOA';
% % % % % % [results.Bestcost(id),results.bestX(id,:),results.cost_history(id,:)]=DMOA(nPop,MaxIt,LB,UB,Dim,fobj);
% % % % % % F11=one(results.bestX(id,:),model);
% % % % % % F21=two(results.bestX(id,:),model);
% % % % % % F31=three(results.bestX(id,:),model);
% % % % % % F41=four(results.bestX(id,:),model);
% % % % % % cost1=CostFunction(results.bestX(id,:),model);
% % % % % % id=id+1;
% % % % % % results.alg_name{id}='CDMOS';
% % % % % % [results.Bestcost(id),results.bestX(id,:),results.cost_history(id,:)]=CDMOS(nPop,MaxIt,LB,UB,Dim,fobj);
% % % % % % F12=one(results.bestX(id,:),model);
% % % % % % F22=two(results.bestX(id,:),model);
% % % % % % F32=three(results.bestX(id,:),model);
% % % % % % F42=four(results.bestX(id,:),model);
% % % % % % cost2=CostFunction(results.bestX(id,:),model);
% % % % % % id=id+1;
% % % % % % results.alg_name{id}='IDMO';
% % % % % % [results.Bestcost(id),results.bestX(id,:),results.cost_history(id,:)]=IDMO(nPop,MaxIt,LB,UB,Dim,fobj);
% % % % % % F13=one(results.bestX(id,:),model);
% % % % % % F23=two(results.bestX(id,:),model);
% % % % % % F33=three(results.bestX(id,:),model);
% % % % % % F43=four(results.bestX(id,:),model);
% % % % % % cost3=CostFunction(results.bestX(id,:),model);
% % % % % % % end
% % % % % % 
% % % % % % 
% % % % % % % cost1=CostFunction(results.bestX(id,:),model);
% % % % % % % position = Transforms(results.bestX,model);
% % % % % % % F1=one(results.bestX(id,:),model);
% % % % % % % F2=two(results.bestX(id,:),model);
% % % % % % % F3=three(results.bestX(id,:),model);
% % % % % % % F4=four(results.bestX(id,:),model);
% % % % % % %% ���ƽ��
% % % % % % DrawSolution(results,model);
% % % % % % 
% % % % % % disp(['������Ӧ��ֵΪ��',num2str(results.Bestcost)]);
% % % % % % disp(['·�����ȴ���Ϊ��',num2str(F11)]);
% % % % % % disp(['�ϰ��ɱ�Ϊ��',num2str(F21)]);
% % % % % % disp(['�߶ȳɱ�Ϊ��',num2str(F31)]);
% % % % % % disp(['Smooth�ɱ�Ϊ��',num2str(F41)]);
% % % % % % disp(['�ܳɱ�Ϊ��',num2str(cost1)]);
% % % % % % disp(['·�����ȴ���Ϊ��',num2str(F12)]);
% % % % % % disp(['�ϰ��ɱ�Ϊ��',num2str(F22)]);
% % % % % % disp(['�߶ȳɱ�Ϊ��',num2str(F32)]);
% % % % % % disp(['Smooth�ɱ�Ϊ��',num2str(F42)]);
% % % % % % disp(['�ܳɱ�Ϊ��',num2str(cost2)]);
% % % % % % disp(['·�����ȴ���Ϊ��',num2str(F13)]);
% % % % % % disp(['�ϰ��ɱ�Ϊ��',num2str(F23)]);
% % % % % % disp(['�߶ȳɱ�Ϊ��',num2str(F33)]);
% % % % % % disp(['Smooth�ɱ�Ϊ��',num2str(F43)]);
% % % % % % disp(['�ܳɱ�Ϊ��',num2str(cost3)]);